package com.kk.xhr.model.service;

import com.kk.xhr.common.pojo.TrainStatusEnum;
import com.kk.xhr.model.dto.PageDto;
import com.kk.xhr.model.dto.TrainDTO;
import com.kk.xhr.model.dto.TrainQueryRequestDTO;

import java.util.Collection;
import java.util.List;

/**
 * 培训服务接口
 *
 * @author kkmystery
 * @version 1.0 2021/3/31
 * @since 1.0.0
 */
public interface ITrainService {

    /**
     * 分页查询培训
     *
     * @param dto 培训查询dto
     * @return 培训列表
     */
    PageDto<TrainDTO> queryPage(TrainQueryRequestDTO dto);

    /**
     * 根据用户id查询所有培训记录
     *
     * @param userId 用户id
     * @return 培训列表
     */
    List<TrainDTO> query(Long userId);

    /**
     * 批量插入培训
     *
     * @param list 列表
     * @return 是否成功
     */
    boolean batchAdd(Collection<TrainDTO> list);

    /**
     * 修改培训
     *
     * @param id  主键id
     * @param dto 培训dto
     * @return 是否成功
     */
    boolean modify(Long id, TrainDTO dto);

    /**
     * 修改状态
     *
     * @param id     培训id
     * @param status 状态
     */
    void modifyStatus(Long id, TrainStatusEnum status);
}
